Computers have various devices attached to them. These may include network cards, video cards, sounds cards, etc. These devices are considered part of a computer but many include some autonomous computational functionality as well. Thus, many of these devices include integrated circuits.
Modern manufacturing technologies allow integrated circuits or chips to be manufactured with smaller and smaller feature sizes. For example, current technology may allow the manufacturing of chips with a 90 nm feature size. This allows more features to be placed on a chip of a given size, thus allowing an increase in functionality of a chip without increasing its size. However, placing more and more features in a small area increases the heat generated by the chip per given area, because the power consumed by transistors usually does not decrease at the same rate as their size. This problem is worsened by the fact that decreasing the feature size often comes with a tradeoff of increased leakage current which also produces heat.
Furthermore, many types of modern computers, especially network servers and the like, are often designed to be smaller as well. Decreasing the size of a computer, or increasing the density of computing devices (e.g., blade servers) often reduces and/or removes various air channels and vents from it, thus decreasing its ability to remove heat from its internal components. The above issues cause some concern for temperature management of the various devices within a computer. There are several solutions for controlling the temperature of a chip of a device. For example, a heat sink may be placed over or in proximity to the chip. In addition, a fan may be used to draw hot air away from the chip and create and air current that cools the chip down. While using a fan is beneficial for most devices it may cause problems for devices that need to be on at all times, such as devices that are a part of networked storage servers, web servers, etc. Keeping a fan on at all times will severely shorten the life of the fan, and thus of the device. Therefore, a scheme of selectively turning the fan on and off is needed.
Existing systems usually rely on a host to monitor the temperature condition of devices connected to the host. Thus, a computer's main CPU (usually executing OS procedures) may monitor the temperatures of the devices of the computer (such as, e.g. network cards, HBAs, video cards, etc.) and take action if any of these temperatures are too high. For example, the CPU may turn on a fan, speed up an already running fan, stop sending commands to the device that is overheating, etc.
However these prior art system require constant periodic interruptions of the computer's main CPU for the purpose of monitoring the temperatures of connected devices. These interruptions may significantly affect the computer's overall performance.